package imlayer

import (
	"encoding/json"
	//"dhfshop/models/im"
	"dhfshop/service/nsqcli"
	"github.com/astaxie/beego"
)

func ForwardAuditSuccessEvent(appId string, reqMap map[string]string) error {
	auditSuccessMsg := struct {
		AppId        string  `json:"AppId"`    
	    ToUserName   string  `json:"ToUserName"`   //小程序的原始ID
	    FromUserName string  `json:"FromUserName"` //发送方帐号（一个OpenID，此时发送方是系统帐号） 
	    CreateTime   string  `json:"CreateTime"`   //消息创建时间 （整型），时间戳
	    MsgType      string  `json:"MsgType"`      //消息类型，event
	    Event        string  `json:"Event"`        //事件类型 weapp_audit_success
		SuccTime     string  `json:"SuccTime"`     //审核成功时的时间（整形），时间戳
	}{appId,reqMap["ToUserName"],reqMap["FromUserName"],reqMap["CreateTime"],reqMap["MsgType"],reqMap["Event"],reqMap["SuccTime"]}
	auditSuccessJson, err := json.Marshal(&auditSuccessMsg)
	if err != nil {
		beego.Debug(err.Error())
		return err
	}
	//beego.Debug("auditSuccessJson:", string(auditSuccessJson))
	address := beego.AppConfig.String("NsqUrl")
	topic := "ReleaseCode"
	if err = nsqcli.StartProducer(address, topic, auditSuccessJson); err != nil {
		beego.Debug("StartProducer err:", err.Error())
	}
	return nil
}

func ForwardAuditFailEvent(appId string, reqMap map[string]string) error {
	auditFailMsg := struct {
		AppId        string  `json:"AppId"`    
	    ToUserName   string  `json:"ToUserName"`   //小程序的原始ID
	    FromUserName string  `json:"FromUserName"` //发送方帐号（一个OpenID，此时发送方是系统帐号） 
	    CreateTime   string  `json:"CreateTime"`   //消息创建时间 （整型），时间戳
	    MsgType      string  `json:"MsgType"`      //消息类型，event
	    Event        string  `json:"Event"`        //事件类型 weapp_audit_success
		Reason       string  `json:"Reason"`       //审核失败的原因
		FailTime     string  `json:"FailTime"`     //审核失败时的时间（整型），时间戳
	}{appId,reqMap["ToUserName"],reqMap["FromUserName"],reqMap["CreateTime"],
	   reqMap["MsgType"],reqMap["Event"],reqMap["Reason"],reqMap["FailTime"]}
	auditFailJson, err := json.Marshal(&auditFailMsg)
	if err != nil {
		beego.Debug(err.Error())
		return err
	}
	//beego.Debug("auditFailJson:", string(auditFailJson))
	address := beego.AppConfig.String("NsqUrl")
	topic := "ReleaseCode"
	if err = nsqcli.StartProducer(address, topic, auditFailJson); err != nil {
		beego.Debug("StartProducer err:", err.Error())
	}
	return nil
}
